﻿
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace Arim.S4.Client.Base.Dto
{
    public class ManufacturePlanDto : EntityDto
    {
        /// <summary>
        /// 获取或设置制造命令号
        /// </summary>
        [Display(Name = "制造命令号")]
        public string CmdNo { get; set; }

        /// <summary>
        /// 获取或设置浇次计划编号
        /// </summary>
        [Display(Name = "浇次计划编号")]
        public string CastPlanNo { get; set; }

        // 连铸顺序号
        [Display(Name = "连铸顺序号")]
        public string CastSeq { get; set; }

        // 炉次号
        [Display(Name = "炉次号")]
        public string HeatNo { get; set; }

        public DateTime? EventTime { get; set; }

        public long? TagId { get; set; }

        //浇铸机器编号
        [Display(Name = "浇铸机器编号")]
        public string CastId { get; set; }

        //钢种
        [Display(Name = "钢种")]
        public string SteelType { get; set; }

        [Display(Name = "LF路径")]
        public string LfPath { get; set; }

        [Display(Name = "规格")]
        public string Spec { get; set; }
        /// <summary>
        /// 获取或设置钢包号。
        /// </summary>
        [Display(Name = "钢包号")]
        public string LadleNo { get; set; }

        /// <summary>
        /// 获取或设置计划出钢重量。
        /// </summary>
        [Display(Name = "计划出钢重量")]
        public float PlanTapWeight { get; set; }

        /// <summary>
        /// 获取或设置计划浇注重量。
        /// </summary>
        [Display(Name = "计划浇注重量")]
        public float PlanPourWeight { get; set; }

        [Display(Name = "板坯厚度")]
        public float SlabThick { get; set; }

        [Display(Name = "板坯宽度")]
        public float SlabWidth { get; set; }

        [Display(Name = "板坯长度")]
        public float SlabLen { get; set; }

        //炉次换包标记
        [Display(Name = "炉次换包标记")]
        public int TdChangeFlag { get; set; }

        [Display(Name = "计划日期")]
        public DateTime? PlanDate { get; set; }

        /// <summary>
        /// 获取或设置浇铸批号。
        /// </summary>
        [Display(Name = "LOT浇铸批号")]
        public string CastLotNo { get; set; }

        [Display(Name = "LOT分割号")]
        public string CastLotDivNo { get; set; }//CAST_LOT分割号

        [Display(Name = "LOT内炉数")]
        public int CastLotSum { get; set; }//CAST_LOT内炉数

        /// <summary>
        /// 获取或设置分隔标记。
        /// </summary>
        [Display(Name = "分隔标记")]
        public string DivFlag { get; set; }

        //制造命令状态
        [Display(Name = "制造命令状态")]
        public int CmdState { get; set; }

        [Display(Name = "创建时间")]
        public DateTime CreationTime { get; set; }
    }


    public class ManufacturePlanStateChangedDto {
        public string CmdNo { get; set; }
        public int CmdState { get; set; }
    }

    public class ManufacturePlanGroupDto
    {
        public string SteelType { get; set; }
        public string Spec { get; set; }
        public int Count { get; set; }
        /// <summary>
        /// 确认下达的炉数。
        /// </summary>
        public int ConfirmCount { get; set; }
        public IList<ManufacturePlanDto> Items { get; set; }
    }
}
